Dashboard Temp Share Shortlinks Frames API

HTMLify

Max Circular Subarray Sum.py
Views: 26 | Author: prakhardoneria
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution:
    def maxCircularSum(self, arr):
        total_sum = 0
        curr_max = 0
        max_so_far = arr[0]
        curr_min = 0
        min_so_far = arr[0]
        
        for x in arr:
            total_sum += x
            
            curr_max = max(x, curr_max + x)
            max_so_far = max(max_so_far, curr_max)
            
            curr_min = min(x, curr_min + x)
            min_so_far = min(min_so_far, curr_min)
            
        if max_so_far < 0:
            return max_so_far
            
        return max(max_so_far, total_sum - min_so_far)